Causing specific location of an object provided to a device

ABSTRACT

Techniques for causing a specific location of an object provided to a shared device. These techniques may include connecting the computing device with an individual device. The individual device may transmit the object to the shared device and displayed at an initial object position on a display of the shared device. The initial object position may be updated in response to movement of the individual device, and the object may be displayed at the updated object position on the display. The object position may be locked in response to a signal, and the object may be displayed at the locked object position.

CROSS REFERENCE TO RELATED PATENT APPLICATIONS

This application is a continuation of and claims priority to U.S.Non-Provisional patent application Ser. No. 13/830,124, entitled“CAUSING SPECIFIC LOCATION OF AN OBJECT PROVIDED TO A DEVICE”, filed onMar. 14, 2013, which claims priority to U.S. Provisional PatentApplication 61/772,458, filed Mar. 4, 2013, both of which are herebyincorporated by reference herein, in their entirety.

BACKGROUND

Computing devices are ubiquitous in today's society. Many people owncomputing devices that can be loaded with applications or software toperform very specific operations. These devices, when loaded with propersoftware, may be used to control devices, exchange information withother devices, and perform other functions.

When communicating data from a first computing device to a secondcomputing device, the communicated data is often stored and/or displayedat default locations on the second device that are determined by thesecond device (i.e., the receiving device). At best, a user of the firstcomputing device may specify a storage location for the data on thesecond device, such as by selecting a folder used to store the data.

SUMMARY

Described herein are techniques and systems that allow positioning of anobject that is received from an individual device (e.g., a mobilecomputing device, etc.) and made available for display on a shareddevice (e.g., a shared display, etc). The positioning of the object onthe shared device may be based in part on movement of a user associatedwith the individual device and/or movement of the individual device.

Example techniques may include creating a communication connectionbetween a shared device and an individual device. After the connectionis established between the devices, an object that is selected on theindividual device may be transmitted from the individual device to theshared device, and displayed at an initial object position on a displayof the shared device. The object position may be updated in response tomovement of the individual device or a user operating the individualdevice. The object position may be locked in response to a triggeringevent, and the object may be displayed, at least temporarily, at thelocked object position by the shared device.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Thesame reference numbers in different figures indicate similar oridentical items.

FIG. 1 illustrates an example computing environment for causing aspecific location of an object provided to a computing device.

FIG. 2 illustrates an example architecture of the shared device shown inFIG. 1.

FIG. 3 illustrates an example architecture of the individual deviceshown in FIG. 1.

FIG. 4 illustrates an example process to cause a specific location ofobject provided to a computing device.

FIG. 5 illustrates an example process to cause a specific location ofobject provided to a computing device, where the shared device detects aposition of the individual device or the user.

FIG. 6 illustrates an example process to cause a specific location ofobject provided to a computing device, where the individual deviceprovides position information to the shared device.

FIG. 7 illustrates an example user interface for editing objectstransmitted to a computing device.

DETAILED DESCRIPTION Overview

This disclosure is directed, in part, to operations used to transmit andposition an object between an individual device (e.g., a mobilecomputing device, etc.) and a shared device (e.g., a shared display,etc.). Embodiments of the present disclosure provide seamless andintuitive copy-paste and position controls, from the individual device,to position the object on a display associated with the shared device.Unlike conventional technologies that enable a user to “flick” objectsto a display, but offer no positioning control by the user once theobject is received on the display, embodiments of the present disclosureenable a user that transmitted the object to precisely position theobject on a display after the object is received by the display.

In some aspects of this disclosure, the shared device may create acommunication connection with the individual device by performing aconnection protocol, such as a handshake, pairing of information,exchange of credentials, and/or by using other connection protocols. Theshared device may receive the object form the individual device. Forexample, the individual device may transmit the object to the shareddevice using a hardware address of the shared device that was exchangedduring the connection protocol. The shared device may display the objectat an initial object position.

In some embodiments, the shared device may update the position of theobject by detecting a position of the individual device or user as acontrol position, and then updating the object position in response to achange in the control position. The shared device may lock the object ata particular object position in response to a trigger event, such asreceipt of a signal (e.g., a termination signal, etc.), an expiration ofa predetermined amount of time, discontinued movement of the individualdevice, and/or other triggering events.

In various embodiments, the individual device may provide positioninformation to allow the shared device to position the object on thedisplay of the shared device. For example, the position information mayinclude imagery created by the individual device, where the imageryincludes the object and reference points associated with the shareddevice. The shared device may then use the position information toposition the object on the display associated with the shared device.

Illustrative Environment

FIG. 1 illustrates an example computing environment 100 in which anobject may be transmitted from an individual device, and placed in aparticular position on a display associated with a shared device. Insome embodiments, the environment 100 may include a shared device 102that is in communication with an individual device 104, which isoperated by a user 106. The shared device 102 may be a general purposecomputer, one or more servers, a set-top box, a game console, or anyother computing device capable of exchanging data with another device(e.g., a mobile telephone) and producing outputs (e.g., a visualrepresentation). In these and other instances, the shared device 102 maybe accessed by one or more computing devices (e.g., the individualdevice 104).

In some instances, the individual device 104, meanwhile, may be a mobilecomputer, a mobile telephone (e.g., smart phone), a personal computer, alaptop computer, a portable digital assistant (PDA), a game console, apersonal media player (PMP), a digital still camera, a digital videocamera, a personal navigation device, or any other computing devicecapable of exchanging data with another device (e.g., a sensing device)and producing outputs (e.g., a visual representation), which can be usedwith various devices (e.g., a display).

In some embodiments, the shared device 102 may be in communication withthe individual device 104 and one or more other computing devices. Inthese instances, the individual device 104 and other computing devicesmay present and/or share objects on a display associated with the sharedevice 102. For example, the individual device 104 and other computingdevices may copy and paste the objects to the shared device 102, anddisplay the objects at desired positions on the display. The objects maybe applications, services, documents, data, graphs, photos, multimedia(e.g., text, audio, images, animation, video), games, emails, onlinechat records, social networking profiles, postings, and other files thatusers may wish to share with others. In some embodiments, the selectionof the objects may include a selection of same type of objects and/or aselection that contains a combination of different type of objects. Insome embodiments, the selection may include a subset of an application(i.e., a dialog box).

The shared device 102 may establish a connection with the individualdevice 104 when the individual device 104 is in proximity of the shareddevice 102. The connection may be initialized by the shared device 102or the individual device 104. In some instances, the connection may beestablished via network 108. The network 108 may include any one orcombination of multiple different types of networks, such as cablenetworks, the Internet, and wireless networks (e.g., Bluetooth®, Wi-Fi,mobile telephone networks, etc.).

In some embodiments, the user 106 may select an object 110 on aninterface 112 of the individual device 104, and then copy the object 110to a display 114. After receiving the selection of the object 110, theindividual device 104 may transmit the object 110 to the shared device102. For example, the individual device 104 may transmit the object 110to the shared device 102 using a hardware address of the shared devicethat was exchanged during the connection protocol. The shared device 102may display the object 110 on an initial object position of the display114. In some instances, the initial object position may be determinedbased on a predetermined rule or context, such as a task that the shareddevice 102 or the individual device 104 is operating.

In some embodiments, the initial object position may be determined basedon a position of the user 106 and/or the individual device 104 inrelation to the sensor 116 or the display 114. In these instances, theinitial object position may be associated with reference features of theuser 106 and/or the individual device 104. For example, the display 114may include multiple displays, and the initial object position may be ona display of the multiple displays to which the user 106 or theindividual device 104 is aiming.

In some embodiments, the shared device 102 may detect a position of theindividual device 104 via a sensor 116. In these instances, the sensor116 may detect and/or track movement of the individual device 104 and/oran appendage of the user 106. For example, the sensor 116 may be amotion detection sensor that is capable of tracking movement of specificitems (e.g., the individual device 104, etc.) and/or tracking movementof people (e.g., the user 106, etc.). Accordingly, the user 106 maycontrol the object position of the object on the display 114 by movingthe individual device 104 and/or the appendage, which is tracked by thesensor 116. The shared device 102 may update the object position inresponse to the movement of the individual device 104 received by thesensor 106, and then display the object 110 at the updated objectposition.

The shared device 102 may lock the object at a particular objectposition in response to a trigger event, such as receipt of a signal(e.g., a termination signal, etc.), an expiration of a predeterminedamount of time, discontinued movement of the individual device or theuser, and/or other triggering events. For example, the object positionmay be updated until the shared device 102 receives a stop signal (e.g.,the user 106 releasing the finger from the individual device 104, etc.).Once receiving the stop signal, the shared device 102 may lock theobject position and display the object 110 at the locked objectposition.

In various embodiments, the individual device 104 may transmit objectpositioning information to the shared device 102 that enablespositioning of the object 110 on the display 114 without use of thesensor 116. In some embodiments, the object position information mayinclude imagery captured by a camera of the individual device 104. Forexample, the imagery may include reference features associated with thedisplay 114, which may be overlaid with the object 110 rendered on theindividual device 104. The overlaid object may provide positioninformation with respect to the reference features, which may enable theshared device 102, after analysis of the object position information, toposition the object 110 at specific locations on the display. As theuser 106 moves the individual device 104 (and thus the camera), therelative position of the object and reference features may change. Theindividual device 104 may continually update and transmit the objectposition information to the shared device 102 until occurrence of atriggering event. Upon receiving the object position information, theshared device 102 may display the object 110 at an updated objectposition that corresponds to the object position information. The shareddevice may lock the object at a particular object position in responseto a trigger event. For example, the object position is updated untilthe individual device 104 stops sending the object position information.The shared device 102 may then lock the object position and display theobject 110 at the locked object position.

In some embodiments, the environment 100 may also include server(s) 118associated with a service provider 120 that provides services (e.g.,cloud storage, external content, etc.) to the shared device 102 and/orthe individual device 104. In some instances, while interacting with theshared device 102, the individual device 104 may access the services ofthe service provide 120 via the network 108. For example, the user 106may request a mapping service from the service provider 120. The shareddevice 102 may receive mapping information (e.g., a map) and present themap information on the display 114. Some mapping information may also beprovided to the individual device 104, although this mapping informationmay be different than the mapping information provided to the shareddevice 102.

Illustrative Architecture

FIG. 2 illustrates an example architecture of a shared device shown inFIG. 1. The shared device 102 shown in FIG. 2 and the individual device104 are only examples of possible computing devices and are not intendedto suggest any limitation as to the scope of use or functionality of thecomputer and network architectures. The shared device 102 and theindividual device 104 are not intended to be interpreted as having anydependency or requirement relating to any one or combination ofcomponents illustrated in the example computing device.

Alternatively, or in addition, the functionally described hereinregarding the shared device 102 and the individual device 104 may beperformed, at least in part, by one or more hardware logic components.For example, and without limitation, illustrative types of hardwarelogic components that may be used include Field-programmable Gate Arrays(FPGAs), Program-specific Integrated Circuits (ASICs), Program-specificStandard Products (ASSPs), System-on-a-chip systems (SOCs), ComplexProgrammable Logic Devices (CPLDs), etc.

In some embodiments, the shared device 102 may include at least oneprocessing unit 202 and system memory 204. Depending on the exactconfiguration and type of computing device, the system memory 204 may bevolatile (such as RAM), non-volatile (such as ROM, flash memory, etc.)or some combination of the two. The system memory 204 typically includesan operating system 206, one or more program modules 208, and mayinclude program data 210 as well as device data 212. In some instances,the device data 316 may store information associated with devices (e.g.,the individual device 104) that have connected and/or are to beconnected with the shared device 102. The program modules 208 mayinclude a communication module 214, a sensor module 216, a locationmodule 218, and a display module 220, and a editing module 222, eachdiscussed in turn.

The communication module 214 may be configured to communicate withdevices such as the individual device 104 and/or the server 118. In someembodiments, the communication module 214 may initialize and establish aconnection with the individual device 104 via the network 108. Forexample, the communication module 214 may demodulates Bluetooth signalsand/or control the sates and modes of a Bluetooth device, such as theindividual device 104. In some instances, the communication module 214may perform and/or establish a handshake with the individual device 104to create a connection such as Bluetooth link, when the individualdevice is in proximity of the shared device. In these instances,authentication credentials may be exchanged between the shared device102 and the individual device 104 during the handshake.

After the connection is established between the shared device 102 andthe individual device 104, the communication module 214 may receive theobject 110 from the individual device 104 via the communication protocolestablished between the devices. The received object 110 may bedisplayed by the display module 220 at an initial object position on thedisplay 114. In some embodiments, the display module 220 may show ashadow at the initial object position on the display 114 to representthe object 110. The shadow may be moved on the display 114 in responseto movement of the user 106. The shadow may include a rendering of theobject 110, a semi-transparent rending of the object 110, a placeholder,and/or other information/imagery. In some embodiments, the display 114may include multiple displays and/or other devices, and that the shadowmay appear on an appropriate display based on where the individualdevice is aiming.

In some embodiments, the initial object position may be determined basedon a predetermined rule and/or context, such as a task that the shareddevice 102 and/or the individual device 104 are operating. In someinstances, the initial object position may also be determined based on aposition of the individual device 104 or an appendage of the user 106 inrelation to a distance to the display.

The sensor module 216 may be configured to detect a control position,such as a position of the individual device 104 and/or an appendage ofthe user 106. For example, combining with the sensor 116, the sensormodule 216 may perform three dimension (3D) motion capture of partial orfull-body, facial recognition and voice recognition. In someembodiments, the sensor module 216 may detect and/or track one or morechanges of the control position. In response to the changes, thelocation module 218 may update the object position of the object 110presented on the display 114. Then, the location module 218 may lock theobject 110 at the updated object position on the display 114 in responseto a triggering event. The triggering event may be a command transmittedafter the user 106 performs a stop gesture, such as releasing his/herfinger from a touch screen of the individual device 104, after apredetermined amount to time, after a stop in movement, and so forth.

In some embodiments, the sensor module 216 may track multiple usersoperating multiple individual devices via the sensing device 106. Insome instances, the shared device 102 may track the multiple users byidentifying features of individual users and associate the individualusers with one or more individual devices that the individual users isare operating. For example, the shared device 102 may identify anindividual user based on user characteristics (e.g., voice, facialfeatures and/or body features, etc.) and/or based on other trackinginformation associated with the individual user (e.g., deviceidentifiers, marker identifiers, self registration, etc.) of theindividual user.

The program modules 208 may also include an editing module 222, which isconfigured to edit the object 110 based on movement of the individualdevice 104 or gestures of a user appendage after the object is locked,which is discussed in greater detail in FIG. 7. For example, the user106 may rotate the object 110, change a size and/or contrast of theobjection 110, crop and/or leave only a portion behind of the object110, and/or add annotation associated with the object 110.

In some embodiments, the operating system 206 includes a component-basedframework that supports components (including properties and events),objects, inheritance, polymorphism, reflection, and the operating system206 may provide an object-oriented component-based applicationprogramming interface (API). Again, a terminal may have fewer componentsbut will interact with a computing device that may have such a basicconfiguration.

The shared device 102 may have additional features or functionality. Forexample, the shared device 102 may also include additional data storagedevices (removable and/or non-removable) such as, for example, magneticdisks, optical disks, or tape. Such additional storage is illustrated inFIG. 2 by removable storage 224 and non-removable storage 226.Computer-readable media may include, at least, two types ofcomputer-readable media, namely computer storage media and communicationmedia. Computer storage media may include volatile and non-volatile,removable, and non-removable media implemented in any method ortechnology for storage of information, such as computer readableinstructions, data structures, program modules, or other data. Thesystem memory 204, the removable storage 224 and the non-removablestorage 226 are all examples of computer storage media. Computer storagemedia includes RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD), or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium that may be used tostore the desired information and which may be accessed by the shareddevice 102. Any such computer storage media may be part of the shareddevice 102. Moreover, the computer-readable media may includecomputer-executable instructions that, when executed by the processorunit(s) 202, cause the shared device 102 to perform various functionsand/or operations described herein.

In contrast, communication media may embody computer-readableinstructions, data structures, program modules, or other data in amodulated data signal, such as a carrier wave, or other transmissionmechanism. As defined herein, computer storage media does not includecommunication media.

The shared device 102 may also have input device(s) 228 such askeyboard, mouse, pen, voice input device, touch input device (e.g.,stylus, pen, etc.), touch screen device, navigation devices (e.g., trackpad, mouse, etc.) etc. In some embodiments, input methods may beimplemented via Natural User Interface (NUI). NUI may include anyinterface technology that enables a user to interact with a device in a“natural” manner, free from artificial constraints imposed by inputdevices such as mice, keyboards, remote controls, and the like. Examplesof NUI methods may include those relying on speech recognition, touchand stylus recognition, gesture recognition both on screen and adjacentto the screen, air gestures, head and eye tracking, voice and speech,vision, touch, gestures, and machine intelligence. Categories of NUItechnologies may include touch sensitive displays, voice and speechrecognition, intention and goal understanding, motion gesture detectionusing depth cameras (such as stereoscopic camera systems, infraredcamera systems, RGB camera systems and combinations of these), motiongesture detection using accelerometers/gyroscopes, facial recognition,3D displays, head, eye, and gaze tracking, immersive augmented realityand virtual reality systems, all of which provide a more naturalinterface, as well as technologies for sensing brain activity usingelectric field sensing electrodes (EEG and related methods).

In some embodiments, the shared device 102 may include the sensor 116that receives and/or responses to an input signal generated via methodssuch as NUI. For example, the sensor 116 may be a motion sensing inputdevice that receives and/or responses to signals used for partial orfull-body 3D motion capture, facial recognition and voice recognition.In some instances, the sensor 116 may track one or more users in variousconditions (e.g., complete darkness) by tracking users' bodies (e.g.,skeletons and appendage). The appendage may include arms, legs, andheads of the users. In some instances, the representation may be trackedvia depth-sensing or optical flow techniques, and does not necessarilyrequire identification of particular body parts.

The shared device 102 may also output device(s) 230 such as a display(e.g., the display 114), speakers, printer, etc. may also be included.The shared device 102 may also contain communication connections 232that allow the device to communicate with other computing devices (e.g.,the individual device 104), such as over a network such as the network108.

FIG. 3 illustrates an example architecture 300 of an individual deviceshown in FIG. 1. In some embodiments, the individual device 104 mayinclude at least one processing unit 302 and system memory 304.Depending on the exact configuration and type of computing device, thesystem memory 304 may be volatile (such as RAM), non-volatile (such asROM, flash memory, etc.) or some combination of the two. The individualdevice 104 may also include additional data storage devices such asremovable storage 306 and non-removable storage 308. The system memory304, the removable storage 306 and the non-removable storage 308 are allexamples of computer storage media.

The system memory 304 typically includes an operating system 310, one ormore program modules 312, and may include program data 314 as well asdevice data 316. In some instances, the device data 316 may storeinformation associated with devices (e.g., the shared device 102) thathave connected and/or are to be connected with the individual device104. The program modules 312 may include a communication module 318, alocation module 320, and an editing module 322, each discussed in turn.

The communication module 318 is configured to communicate with devicessuch as the shared device 102 and/or the server 118. In someembodiments, the communication module 318 may initialize and establish aconnection with the shared device 102 via, for example, a Bluetoothconnection, the network 108, or another connection protocol.

After the connection is established between the shared device 102 andthe individual device 104, the communication module 214 may receive aselection of the object 110 from the user 106, and transmit the objectto the shared device 104 via a communication protocol established withthe shared device 102.

The location module 320 is configured to locate an object position onthe display 114 of the shared device 102. In some embodiments, theobject position may include a position of the object 110 in relation toreference features of the display 114. The reference features may becaptured by a camera of the individual device 104. In these instances,the reference features may be determined based on objects shown on thedisplay 114 such as images or icons shown on the display 114. In someinstances, the reference features may be determined based on anappearance feature of the display such as a frame of the display 114.

The location module 320 may also update the object position in responseto movement of the individual device 104 and/or an appendage of the user106. Accordingly, the user 106 may control the object position of theobject on the display 114 by moving the individual device 104 and/or theappendage. Information of the object position and/or the updated objectposition may be transmitted to the shared device 102 by thecommunication module 318, and the shared device 102 may then display theobject at the object position or the updated object position on thedisplay 114. The object position is updated until an occurrence of atriggering event. For example, the triggering event may be a commandtransmitted to the shared device 102 by the communication module 318 tolock the object position and display the object 110 at the locked objectposition.

In some embodiments, the user 106 may be given an impression of holdingthe object 110 by providing background imagery of the display 114 asimagery from a camera of the individual device 104. Accordingly, theuser 106 may precisely control the object position by moving theindividual device 104. In some instances, the location module may tracka control position of the individual device 104 relative to the display114 using vision, audio and/or other approaches that communicate withthe shared device 102.

The program modules 312 may also include an editing module 322, which isconfigured to edit and/or enable editing the object 110 based onmovement of the individual device 104 or gestures of a user appendageafter the object is locked, which is discussed in greater detail in FIG.7. For example, the user 106 may rotate the object 110, change a sizeand/or contrast of the objection 110, crop and/or leave only a portionbehind of the object 110, and/or add annotation associated with theobject 110.

The individual device 104 may also have input device(s) 324 such as atouch screen device, physical buttons (menu buttons, keyboard, etc.),touch input devices (stylus, pen, etc.), a voice input device, a camera,a light sensor, a microphone, etc. In some embodiments, input methodsmay be implemented via NUI. In some embodiments, the individual device104 includes the sensing device 326, such as a camera.

In some embodiments, the individual device 104 includes output device(s)328 such as a display (e.g., a touch screen), speakers, etc. Theindividual device 104 may also contain communication connections 330that allow the device to communicate with other computing devices (e.g.,the shared device 102), such as over a network. These networks mayinclude wired networks as well as wireless networks such as the network108.

Illustrative Operations

FIG. 4 illustrates an example process 400 for causing specific locationof object provided to a shared device. The process 400 and otherprocesses described throughout this disclosure, including the processes500 and 600, are illustrated as collections of blocks in logical flowgraphs, which represent sequences of operations that can be implementedin hardware, software, or a combination thereof. In the context ofsoftware, the blocks represent computer-executable instructions that,when executed by one or more processors, cause the one or moreprocessors to perform the recited operations. Generally,computer-executable instructions include routines, programs, objects,components, data structures, and the like that perform particularfunctions or implement particular abstract data types. The order inwhich the operations are described is not intended to be construed as alimitation, and any number of the described blocks can be combined inany order and/or in parallel to implement the process.

At 402, the shared device 102 and the individual device 104 mayestablish a connection to enable communication between the shared device102 and the individual device 104. For example, the shared device 102may establish a connection with the individual device 104 by performinga connection protocol, such as a handshake or pairing of information,exchange of credentials, etc. The connection may be initiated by eitherdevice. In some embodiments, the devices may initiate the connectionwhen the devices are within a predetermined distance from one another,touching each other, etc.

At 404, an object may be transmitted from the individual device 104 tothe shared device 102 and located on the display 114 at an initialobject position (position on the display).

At 406, the object position may be updated in response to movement ofthe individual device 104 and/or an appendage of the user 106. Themovement may be detected by the shared device 102, the individual 104,or both. For example, the user 110 may move up or down in respect toother objects on the display 114. For example, the shared device 102 mayuse the sensor 116 to detect the movement with respect to the sensor116, the display 114, or another location. The individual device 110 maydetermine the distance based on information from the sensing device 326,which may detect the movement based on reference features associatedwith the display 114.

At 408, the object position may be locked in response to a triggeringevent, and the object 110 may be displayed at the locked object positionon the display 114. In some embodiments, after the object position islocked, the user 106 may edit the object 110, for example, to changeand/or add orientation, size, contrast, or annotation, which isdiscussed in greater detail in FIG. 7. In some embodiments, the objectmay be moved again after being locked based on another command.

FIG. 5 illustrates an example 500 process to cause a specific locationof object provided to a computing device, where the shared device 102detects a position of the individual device 104 or the user.

At 502 and 504, the shared device 102 and the individual device 104 mayestablish a connection to enable communication between the shared device102 and the individual device 104. For example, the shared device 102may establish a connection with the individual device by performing aconnection protocol, such as a handshake or pairing of information,exchange of credentials, etc. The connection may be initiated by eitherdevice. In some embodiments, the devices may initiate the connectionwhen the devices are within a predetermined distance from one another,touching each other, etc.

At 506, the individual device 104 may receive selection of the object110. For example, the user 106 may select the object 110 by touching ascreen associated with the individual device 104 with one or morefingers and/or a stylus. In some instances, the selection of the object110 may be implemented by speech recognition of an audio input from theuser 106. The object 110 may be transmitted to the shared device 102 at508.

After receiving the object at 510, the shared device 102 may display theobject 110 at an initial object position at 512. In some instances, theinitial object position may be determined based on a predetermined ruleor context, such as a task that the shared device 102 or the individualdevice 104 is operating.

At 514, the shared device 102 may detect a position associated with theindividual device 104 and/or the user 106 (i.e., a control position).For example, the sensor 116 of the shared device 102 may track theindividual device 104 or a user appendage associated with the individualdevice 104 using a motion sensor.

At 516, in response to changes of the control position associated withthe individual device 104, the shared device 102 may move the object 110on the display 114.

At 518, the shared device 102 may determine whether a triggering eventhas occurred. The triggering event may be a signal, lack of movement fora predetermined amount of time, an expiration of an amount of time, etc.If the triggering event occurs, the individual device 104 may transmit acommand, generated at 520, to the shared device at 522. After receivingthe command (i.e., the “YES” branch of operation 518), the shared device102 may lock the object position and display the object 110 at thelocked position of the display at 524. However, if the triggering eventdoes not require a command, then the object may be locked at theoperation 524 without occurrence of the operations 520 and 522.

If the stop signal is not received (i.e., the “NO” branch of operation518), the operations 514-516 may be performed by a loop process.

FIG. 6 illustrates an example 600 process to cause a specific locationof object provided to a computing device, where the individual device104 provides position information to the shared device 102.

At 602 and 604, the shared device 102 and the individual device 104 mayestablish a connection to enable communication between the shared device102 and the individual device 104. For example, the individual device104 may establish a connection with the individual device by performinga connection protocol, such as a handshake or pairing of information,exchange of credentials, etc. The connection may be initiated by eitherdevice. In some embodiments, the devices may initiate the connectionwhen the devices are within a predetermined distance from one another,touching each other, etc.

At 606, the individual device 104 may receive selection of the object110, which may be transmitted to and received by the shared device 102at 608 and 610 respectively.

At 612, the individual device 104 may locate an object position on thedisplay 114 of the shared device 102. In some embodiments, the objectposition may include a position of the object 110 in relation toreference features of the display 114. For example, by showing thedisplay 114 as a background image captured by a camera, the individualdevice 104 may enable the user 106 to determine where the object 110 isplaced on the display 114.

At 614, the individual device 104 may update the object position inresponse to movement of movement of the individual device 104 and/or anappendage of the user 106.

At 616, the individual device 104 may transmit the informationassociated with the object position and/or the updated object positionto the shared device 102. After receiving the information at 618, theshared device 102 may display the object 110 at the update objectposition on the display 114.

At 618, the individual device 104 may determine whether a triggeringevent has occurred. The triggering event may be a signal, lack ofmovement for a predetermined amount of time, an expiration of an amountof time, etc. If the triggering event occurs, the individual device 104may transmit a command to the shared device at 620. After receiving thecommand (i.e., the “YES” branch of operation 618), the shared device 102may lock the object position and display the object 110 at the lockedposition of the display at 624. If the triggering event has not occurred(i.e., the “NO” branch of operation 618), the operations 612-618 may beperformed by a loop process.

Illustrative Interface

FIG. 7 illustrates an example user interface (UI) 700 for editingobjects transmitted to the shared device 102. The UI 700 may bepresented by the shared device 102 or the individual device 104. WhileFIG. 7 illustrates one example UI, it is to be appreciated that multipleother graphic or non-graphic user interfaces may be employed to editobjects transmitted to the shared device 102.

The UI 700 may include one or more option sections, for example, anobject orientation 702, an object size 704, an object contract 710, andan annotation 712. The user 106 may select the one or more optionsections to edit the object 110 after the object 110 is locked at theobject position of the display 114. In some embodiments, the one or moreoptions sections may be surfaced and cycled one at a time to allow theuser 106 to select one of these option sections.

In some embodiments, the user 106 may select the locked object 110, andthen perform operations (e.g., editing or removing) associated with theobject 110. In some embodiments, to facilitate object selection, thedisplay 114 may show a shadow at a particular position in response to atrigger event, such as receipt of a signal (e.g., an initializationsignal, etc.), an expiration of a predetermined amount of time, and/orother trigger events. In some instances, the user 106 may select theobject 110 by moving the shadow onto the object 110 (e.g., via theindividual device 104), making a gesture (e.g., a clutch), and/orperforming an operation associated with the individual device 104. Inother instances, the user 106 may select the object 110 by moving theshadow onto the object 110 and holding for a predetermined time period(e.g., 3 seconds).

In some instances, if the object orientation 702 is selected, the usermay change the orientation of the object 110, as shown in 710. Forexample, the user may control an orientation of the object 110 byrotating the individual device to a certain degree corresponding to adesired orientation.

In some instances, the object size 704 is selected, the user may changethe size of the object 110, as shown in 712. For example, the user mayincrease a size of the object 110 by moving closer to the display orfurther away from the display 114 in relation to an initial position ofthe user 106.

Similarly, if one of the object contrast 706 and the annotation 708 areselected, the user may change a contrast of the object 110 or adding anannotation associated with the object 110, as shown in 714 and 716respectively.

In some embodiments, features (e.g., semantics) of the object 110 and/oroperations associated with the object 110 (e.g., locking operation, andediting operation) may depend on a distance and/or relative bodyorientation between one or more users, their devices, and the shareddisplay (or other resource). For example, the user 106 may haverestricted or limited operations available when facing away from thesensor 116 or the display 114. For example, operations available to theuser 106 may be determined based on a distance between the sensor 116and the user 106 or the individual device 104. For example, operationsavailable to the user 106 may be determined based on an orientation ofthe user 106 in relation to the sensor 116.

CONCLUSION

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts are disclosed as example forms ofimplementing the claims.

What is claimed is:
 1. A computer-implemented method for sharing anobject, the method comprising: detecting, through one or more sensorsconnected with a shared computing device, a control position of acomputing device; displaying, on a display associated with the sharedcomputing device, an object at an initial object position, wherein theinitial object position is determined using a predetermined rule for atask the shared computing device is operating; detecting, through theone or more sensors, a change in the control position of the computingdevice, wherein the change in the control position corresponds with auser action associated with the computing device; updating, based atleast in part on the detecting of the change in the control position,the object position of the object presented on the display; and lockingthe object at the updated object position on the display in response toa triggering event.
 2. The computer-implemented method of claim 1,wherein the one or more sensors comprises one or more selected from agroup consisting of: a motion detection sensor, a depth sensor, a lightsensor, and a pressure sensor.
 3. The computer-implemented method ofclaim 1, wherein the one or more sensors are connected with the sharedcomputing device via one of: a wireless network connection and a wirednetwork connection.
 4. The computer-implemented method of claim 1,further comprising: providing, based on the detecting of the change incontrol position, a notification on one or more of the shared computingdevice and the computing device.
 5. The computer-implemented method ofclaim 1, further comprising: changing an orientation, contrast, orannotation of the object at the updated object position.
 6. Thecomputer-implemented method of claim 1, further comprising:establishing, by the shared computing device, a connection with thecomputing device based at least in part on a distance between thedisplay and the computing device or an orientation of a user operatingthe computing device in relation to the display.
 7. Thecomputer-implemented method of claim 1, further comprising: modifying asize of the object on the display responsive to determining the changein the control position of the computing device indicates the computingdevice has moved closer to or farther from the display.
 8. A sharedcomputing device comprising: at least one processor; and a memory,operatively connected with the at least one processor, storingcomputer-executable instructions that, when executed by the at least oneprocessor, causes the at least one processor to execute a method thatcomprises: detecting, through one or more sensors connected with theshared computing device, a control position of a computing device;displaying, on a display associated with the shared computing device, anobject at an initial object position, wherein the initial objectposition is determined using a predetermined rule for a task the sharedcomputing device is operating; detecting, through the one or moresensors, a change in the control position of the computing device,wherein the change in the control position corresponds with a useraction associated with the computing device; updating, based at least inpart on the detecting of the change in the control position, the objectposition of the object presented on the display; and locking the objectat the updated object position on the display in response to atriggering event.
 9. The shared computing device of claim 8, wherein theone or more sensors comprises one or more selected from a groupconsisting of: a motion detection sensor, a depth sensor, a lightsensor, and a pressure sensor.
 10. The shared computing device of claim8, wherein the one or more sensors are connected with the sharedcomputing device via one of: a wireless network connection and a wirednetwork connection.
 11. The shared computing device of claim 8, whereinthe method, executed by the at least one processor, further comprises:providing, based on the detecting of the change in control position, anotification on one or more of the shared computing device and thecomputing device.
 12. The shared computing device of claim 8, whereinthe method, executed by the at least one processor, further comprises:changing an orientation, contrast, or annotation of the object at theupdated object position.
 13. The shared computing device of claim 8,wherein the method, executed by the at least one processor, furthercomprises: establishing, by the shared computing device, a connectionwith the computing device based at least in part on a distance betweenthe display and the computing device or an orientation of a useroperating the computing device in relation to the display.
 14. Theshared computing device of claim 8, wherein the method, executed by theat least one processor, further comprises: modifying a size of theobject on the display responsive to determining the change in thecontrol position of the computing device indicates the computing devicehas moved closer to or farther from the display.
 15. A shared systemcomprising: one or more sensors; at least one processor, operativelyconnected with the one or more sensors; and a memory, operativelyconnected with the at least one processor, storing computer-executableinstructions for execution of one or more components, associated withthe at least one processor, that execute operations comprising:detecting, through the one or more sensors, a control position of acomputing device; displaying, on a display associated with the sharedsystem, an object at an initial object position, wherein the initialobject position is determined using a predetermined rule for a task theshared system is operating; detecting, through the one or more sensors,a change in the control position of the computing device, wherein thechange in the control position corresponds with a user action associatedwith the computing device; updating, based at least in part on thedetecting of the change in the control position, the object position ofthe object presented on the display; and locking the object at theupdated object position on the display in response to a triggeringevent.
 16. The shared system of claim 15, wherein the one or moresensors comprises one or more selected from a group consisting of: amotion detection sensor, a depth sensor, a light sensor, and a pressuresensor.
 17. The shared system of claim 15, wherein the one or moresensors are connected with the shared computing device via one of: awireless network connection and a wired network connection.
 18. Theshared system of claim 15, wherein the executed operations furthercomprising: providing, based on the detecting of the change in controlposition, a notification on one or more of the shared system and thecomputing device.
 19. The shared system of claim 15, wherein theexecuted operations further comprising: establishing, by the sharedsystem, a connection with the computing device based at least in part ona distance between the display and the computing device or anorientation of a user operating the computing device in relation to thedisplay.
 20. The shared system of claim 15, wherein the executedoperations further comprising: modifying a size of the object on thedisplay responsive to determining the change in the control position ofthe computing device indicates the computing device has moved closer toor farther from the display.